package COBRANZA_MODELO;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class COB_FACTURA_DETALLE {

    private double ID;
    private double ID_FACTURA;
    private double CANTIDAD;
    private String DETALLE;
    private double P_UNITARIO;
    private double SUB_TOTAL;
    private Conexion con = null;

    public COB_FACTURA_DETALLE() {
    }

    public COB_FACTURA_DETALLE(double SUB_TOTAL, double P_UNITARIO, String DETALLE, double CANTIDAD, double ID_FACTURA, double ID) {
        this.SUB_TOTAL = SUB_TOTAL;
        this.P_UNITARIO = P_UNITARIO;
        this.DETALLE = DETALLE;
        this.CANTIDAD = CANTIDAD;
        this.ID_FACTURA = ID_FACTURA;
        this.ID = ID;
    }

    public boolean Insertar() throws Exception {
            String consulta = "insert into BROKER.COB_FACTURA_DETALLE(SUB_TOTAL,P_UNITARIO,DETALLE,CANTIDAD,ID_FACTURA,ID) VALUES (" + SUB_TOTAL + "," + P_UNITARIO + ",'" + DETALLE + "'," + CANTIDAD + "," + ID_FACTURA + "," + ID + ")";
            con.EjecutarSentencia(consulta);
            return true;
    }

    public boolean EliminarXid() {
        try {
            String consulta = "delete from BROKER.COB_FACTURA_DETALLE where ID = " + getID();
            con.EjecutarSentencia(consulta);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    public COB_FACTURA_DETALLE BuscarXid(double id) {
        try {
            String consulta = "select * from BROKER.COB_FACTURA_DETALLE where ID = " + id;
            ResultSet rs = con.EjecutarConsulta(consulta);
            return Cargar(rs).get(0);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    
    public List<COB_FACTURA_DETALLE> BuscarXFactura(double id_factura) throws SQLException{
        
        String consulta = "select * from BROKER.COB_FACTURA_DETALLE where ID_FACTURA = " + id_factura;
        ResultSet rs = con.EjecutarConsulta(consulta);
        return Cargar(rs);
    }

    public List<COB_FACTURA_DETALLE> Todos() {
        try {
            String consulta = "select * from BROKER.COB_FACTURA_DETALLE";
            ResultSet rs = con.EjecutarConsulta(consulta);
            return Cargar(rs);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public List<COB_FACTURA_DETALLE> Cargar(ResultSet rs) {
        try {
            List<COB_FACTURA_DETALLE> lista = new ArrayList<COB_FACTURA_DETALLE>();
            while (rs.next()) {
                COB_FACTURA_DETALLE objeto = new COB_FACTURA_DETALLE();

                objeto.setID(rs.getDouble("ID"));
                objeto.setID_FACTURA(rs.getDouble("ID_FACTURA"));
                objeto.setCANTIDAD(rs.getDouble("CANTIDAD"));
                objeto.setDETALLE(rs.getString("DETALLE"));
                objeto.setP_UNITARIO(rs.getDouble("P_UNITARIO"));
                objeto.setSUB_TOTAL(rs.getDouble("SUB_TOTAL"));
                objeto.setCon(con);
                lista.add(objeto);
            }
            return lista;
        } catch (SQLException ex) {
            ex.printStackTrace();
            return null;
        }
    }

    public double getID() {
        return ID;
    }

    public void setID(double ID) {
        this.ID = ID;
    }

    public double getID_FACTURA() {
        return ID_FACTURA;
    }

    public void setID_FACTURA(double ID_FACTURA) {
        this.ID_FACTURA = ID_FACTURA;
    }

    public double getCANTIDAD() {
        return CANTIDAD;
    }

    public void setCANTIDAD(double CANTIDAD) {
        this.CANTIDAD = CANTIDAD;
    }

    public String getDETALLE() {
        return DETALLE;
    }

    public void setDETALLE(String DETALLE) {
        this.DETALLE = DETALLE;
    }

    public double getP_UNITARIO() {
        return P_UNITARIO;
    }

    public void setP_UNITARIO(double P_UNITARIO) {
        this.P_UNITARIO = P_UNITARIO;
    }

    public double getSUB_TOTAL() {
        return SUB_TOTAL;
    }

    public void setSUB_TOTAL(double SUB_TOTAL) {
        this.SUB_TOTAL = SUB_TOTAL;
    }

    public Conexion getCon() {
        return con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }
}
